<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Caninical XML node set</title>
<style type="text/css">
<!-- 
.INCLUDED { 
   color: #000000; 
   background-color: 
   #FFFFFF; 
   font-weight: bold; } 
.EXCLUDED { 
   color: #666666; 
   background-color: 
   #999999; } 
.INCLUDEDINCLUSIVENAMESPACE { 
   color: #0000FF; 
   background-color: #FFFFFF; 
   font-weight: bold; 
   font-style: italic; } 
.EXCLUDEDINCLUSIVENAMESPACE { 
   color: #0000FF; 
   background-color: #999999; 
   font-style: italic; } 
--> 
</style> 
</head>
<body bgcolor="#999999">
<h1>Explanation of the output</h1>
<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p>
<ul>
<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li>
<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li>
<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li>
<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li>
</ul>
<h1>Output</h1>
<pre>
<span class="EXCLUDED">&lt;!-- XPath="self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild" --&gt;
</span><span class="EXCLUDED">&lt;!-- additionalNSPrefixes="default http://example.org/default ns1 http://example.org/ns1" --&gt;
</span><span class="EXCLUDED">&lt;!-- Result C14N:
<Parent xmlns="http://example.org/default">
    <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild xmlns:ns1="http://example.org/ns1"></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild>
  </Parent>
 --&gt;
</span><span class="EXCLUDED">&lt;!-- Annotation C14N:
1. The default namespace node is rendered for Parent, since it is
   inherited from GrandParent.
2. The ns1 namespace node is rendered for the first GrandChild, since
   it is inherited from Child.
3. The default namespace node is not rendered for the first GrandChild,
   since the output parent of GrandChild (Parent) has the same namespace
   node with the same value, which is in the node set.
4. The ns1 namespace node is rendered for the second GrandChild (same as 2).
5. The default namespace node is rendered for the second GrandChild,
   since it is explicitly declared, and has a different value than that of
   Parent.
6. The ns1 namespace node is rendered for the third GrandChild (same as 2).   
7. The default namespace node is not rendered for the third GrandChild 
   (same as 3).
8. The ns1 namespace node is rendered for the fourth GrandChild (same as 2).   
9. The default namespace node is not rendered fourth the third GrandChild 
   (same as 3).
--&gt;
</span><span class="EXCLUDED">&lt;!-- Result EC14N:
<Parent xmlns="http://example.org/default">
    <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> 
  </Parent>    
--&gt;
</span><span class="EXCLUDED">&lt;!-- Annotation EC14N:
1. The default namespace node is rendered for Parent, since it is visibly
   utilized by Parent.
2. The ns1 namespace attribute is rendered for the first GrandChild, since it
   is visibly utilized by GrandChild.
3. The default namespace node is not rendered for the first GrandChild, since
   it is not visibly utilized.
4. The ns1 namespace attribute is rendered for the second GrandChild, since it
   is visibly utilized by GrandChild.
5. The default namespace node is not rendered for the second GrandChild, since
   it is not visibly utilized by GrandChild. The Gender attribute is in no
   namespace.
6. The ns1 namespace node is not rendered for the third GrandChild, since it
   is not visibly utilized.
7. The default namespace node is not rendered for the third GrandChild. It is
   visibly utilized, but the same namespace node with the same value has already
   been rendered in Parent (an output parent of GrandChild).
8. The default namespace node is not rendered for the fourth GrandChild, since
   it is not visibly utilized.
9. The ns1 namespace node is rendered for the fourth GrandChild, since it is
   visibly utilized by the ns1:Gender attribute of GrandChild.
--&gt;
</span><span class="EXCLUDED">&lt;GrandParent</span><span class="EXCLUDED"> xmlns="http://example.org/default"</span><span class="EXCLUDED">&gt;</span><span class="EXCLUDED">
  </span><span class="INCLUDED">&lt;Parent</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED">&gt;</span><span class="INCLUDED">
    </span><span class="EXCLUDED">&lt;Child</span><span class="EXCLUDED"> xmlns="http://example.org/default"</span><span class="EXCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="EXCLUDED">&gt;</span><span class="EXCLUDED">
      </span><span class="INCLUDED">&lt;ns1:GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED">&gt;</span><span class="INCLUDED">&lt;/ns1:GrandChild&gt;</span><span class="EXCLUDED">
      </span><span class="INCLUDED">&lt;ns1:GrandChild</span><span class="INCLUDED"> xmlns="http://bar.com/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED"> Gender="male"</span><span class="INCLUDED">&gt;</span><span class="INCLUDED">&lt;/ns1:GrandChild&gt;</span><span class="EXCLUDED">
      </span><span class="INCLUDED">&lt;GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED">&gt;</span><span class="INCLUDED">&lt;/GrandChild&gt;</span><span class="EXCLUDED">
      </span><span class="INCLUDED">&lt;GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED"> ns1:Gender="male"</span><span class="INCLUDED">&gt;</span><span class="INCLUDED">&lt;/GrandChild&gt;</span><span class="EXCLUDED">
    </span><span class="EXCLUDED">&lt;/Child&gt;</span><span class="INCLUDED">
  </span><span class="INCLUDED">&lt;/Parent&gt;</span><span class="EXCLUDED">
</span><span class="EXCLUDED">&lt;/GrandParent&gt;</span></pre></body></html>